home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / terse12.zip / TERSE.DOC < prev    next >
Text File  |  1992-03-12  |  31KB  |  717 lines

  1.                             "You  can never  be too  rich, too  thin, or
  2.                                    have too much RAM and Disk  storage."
  3.  
  4.                                       Ancient American proverb, ca. 1980
  5.                                         (As quoted by the QEDIT manual.)
  6.  
  7.          /-------------------\
  8.          | TERSE Version 1.2 |
  9.          \-------------------/
  10.  
  11.           Tiny ``brief'' like editor by
  12.           Joseph (Yossi) Gil.
  13.  
  14.  
  15. TERSE  is a  tiny (only  4096 bytes)  but amazingly powerful full-screen
  16. editor for files of up to 64K in length. TERSE runs on all PC compatible
  17. machines. Its command keys are very similar to those of the famous BRIEF
  18. editor (by  UnderWare Inc.). TERSE can  edit both UNIX and  MS-DOS style
  19. text files as well as binary files. No hacker's disk is complete without
  20. it.
  21.  
  22. TERSE is  free (but copyrighted) to  private users. However, if  you use
  23. TERSE  for any  commercial application,  i.e., in  your company  at work
  24. etc., or make money from selling software or distributing shareware, you
  25. are *required* to register your copy of TERSE. Registration cost is only
  26. $15 and will buy you a personalized version, configuration utilities and
  27. grant your institution a site license.
  28.  
  29.  
  30. Highlights
  31. ==========
  32.  o  Very small: fits in 4096 bytes (4 clusters on 5.25" and 3.5" floppies).
  33.  o  Minimal free memory requirements: 137KB.
  34.  o  Use current screen size, including the common 80x25 configuration
  35.     but also unusual sizes such as 40x16, 40x25, 40x40, 40x50, 132x25,
  36.     132x43, 96x33, 80x30, 80x33, etc.
  37.  o  Fully DESQview (version 2.0+) aware.
  38.  o  Edit binary files. Terse is ideal for a quick and dirty job
  39.     of patching strings in small executables.
  40.  o  Supports editing of UNIX style files (lines terminated with '\n').
  41.  o  Edit lines of unlimited length (limited only by file size).
  42.  o  Automatic unlimited horizontal scrolling.
  43.  o  Status line indicating: current column, current line, horizontal
  44.     scrolling, total number of lines, file name, modified status and
  45.     insert/overwrite status.
  46.  o  Brief like keyboard configuration.
  47.  o  Support for TABS, and configurable tab positions.
  48.  o  Prevents snow when run on a CGA screen.
  49.  o  CUT, COPY and PASTE
  50.  o  SEARCH, SEARCH again, and TRANSLATE commands.
  51.  o  Safe: ask before loosing work.
  52.  o  Edit files whose name contains spaces and other weird names.
  53.  
  54. Requirements
  55. =============
  56.  o  PC-DOS/MS-DOS version 2.0 or higher
  57.  o  137KB free memory
  58.  o  64KB free disk space
  59.  
  60.  
  61. New in Version 1.2
  62. ==================
  63. Code size was shrunk by another 9 (!) bytes.
  64.  
  65. The restriction on distribution by fee shareware distributers
  66. have been removed.
  67.  
  68. After a successful print (Alt-P) the marked block is unmarked.
  69.  
  70. Pre-Release versions of Slim, Lean, Wee and Terse for HP are available
  71. upon request.
  72.  
  73. New in Version 1.1
  74. ==================
  75. A bug in the snow prevention routine  which caused TERSE to hang on some
  76. CGA systems was corrected. TERSE should  run now with no problems on all
  77. adapters.  Many thanks  to Andrea  OMODEO <ele9037@cdc835.cdc.polimi.it>
  78. for identifying the bug and for suggesting the correction.
  79.  
  80. After considerable work the 27 bytes code fragment required for DESQview
  81. awareness was squeezed in. TERSE can now run in a DESQview window and it
  82. is fully DESQview aware.
  83.  
  84. Compatibility
  85. =============
  86. Terse uses  only pure 8088 instructions,  so it should run  on your good
  87. old original  4MhZ IBM-PC as well  as on 80486 50MhZ  machine. More than
  88. once, during the development I was tempted  to save 2-3 bytes by using a
  89. more  advanced instruction,  but I  managed to  resist this  temptation.
  90. Other than that every dirty assembly trick I could think of was used. It
  91. is conceivable that  some of the tricks will  prevent TERSE from running
  92. on some DOS-like  environments and simulators, although I  don't know of
  93. any concrete example.
  94.  
  95. UNIX style files
  96. ================
  97. TERSE will edit UNIX style files  directly. That is TERSE uses both '\n'
  98. (LF aka Line-Feed)  and a '\r\n' (CRLF aka  Carriage-return + Line-feed)
  99. combo  for line  ends. Hitting  ENTER will  enter '\r\n', but Ctrl-ENTER
  100. will enter  '\n'. (Configuration utilities allow  swapping these 2 keys)
  101. Thus you can  transfer UNIX text files to  your PC, edit them on  the PC
  102. and then transfer them back without need for file conversion.
  103.  
  104. Binary files editing
  105. ====================
  106. TERSE can edit binary files as well. It is somewhat limited in the sense
  107. that it does not display the HeX value of each char, so you need to keep
  108. an ASCII table handy. In addition the following characters: space (ASCII
  109. 32), Null  (ASCII 0), and  Meta-Del (ASCII 255)  all look the  same. The
  110. configuration  utilities  give  a  simple  solution  to  this problem on
  111. EGA/VGA compatible  systems. I may  add HeX value  display feature in  a
  112. future version.
  113.  
  114. Configuration Utilities
  115. =======================
  116. If you  are a private  user who  uses  Terse "for pleasure"  you are not
  117. required to  register. If you  use TERSE as  part of your  work, or make
  118. money  from its  distribution, you  are required  to register. The small
  119. registration  fee  ($15)  will  buy  you  a  site  license. Yes, this is
  120. correct, the whole site such as a university with all its PCs, need only
  121. to register once.
  122.  
  123. The  configuration  utilities  will  allow  you  to:  swap the Enter and
  124. Ctrl-Enter keys, change  the tab size to 2/4/8/16.  (I personally prefer
  125. tabs set every 4 characters.) And, modify the key assignments (with some
  126. very minor  restrictions). In addition,  you could eliminate  snow check
  127. done  automatically on  CGA screens,   and will  get better  support (as
  128. describe above) for editing binary files on EGA/VGA screens.
  129.  
  130. How to get
  131. ==========
  132. Archive name is:
  133.  
  134.     terse12.zip
  135.  
  136. Available in:
  137.  
  138. FTP site                Path                 Comments
  139. ========                ====                 ========
  140. garbo.uwasa.fi          /pc/editor           Finland, Europe
  141. oak.oakland.edu         /pub/msdos/editor    Simtel20 mirror
  142. wsmr-simtel20.army.mil  PD1:<MSDOS.EDITOR>   Non-UNIX site.
  143.  
  144. Some of these  sites have mail-server services. If  you cannot get TERSE
  145. from these sources,  feel free to write to  me and ask for a  copy to be
  146. e-mailed to you. The compressed uudecoded  file is only ~40K, and if you
  147. don't need the documentation, it could  be trimmed down to ~5K. I answer
  148. all messages within few days, so if you do not receive a response within
  149. a reasonable time, try a different path.
  150.  
  151. Disclaimer
  152. ==========
  153. This program in written in  highly optimized assembly language. The code
  154. is probably the worst spaghetti you  have ever seen! This means that the
  155. risk of  TERSE having bugs  is especially high.  The author exterminated
  156. all the bugs he identified, and he did his very best to test the program
  157. thoroughly.  However,  there  might  be  still  other  unidentified bugs
  158. lurking  there. These  bugs by  nature are  unpredictable. Usage  of the
  159. program acknowledges the following disclaimer of warranty: "This program
  160. is  supplied as  is!" All  warranties, expressed  or implied, including,
  161. without  limitation, the  fitness of  this program  for any purpose, are
  162. declaimed.
  163.  
  164.  
  165. Future
  166. ======
  167. The main constraint in adding features  to TERSE are that its total size
  168. must be exactly  4096 bytes. Currently I have a  slack of 4 bytes.  That
  169. is, the actual  editor size is 4092 bytes, and  there are 4 dummy bytes.
  170. All additions are  dependent on  my ability to  squeeze the current code
  171. further.  This  task  is  getting  harder  and  harder  all the time. My
  172. approximate work per each byte squeezed is two hours.
  173.  
  174. I have several  other possible directions for  the development of TERSE.
  175. These directions are: ``the terse  family'' and the ``terse library''. I
  176. am looking forward  to hearing from _you_, the  user, communicating your
  177. thoughts and comments.
  178.  
  179. The TERSE library  is nothing but an object code  library which could be
  180. invoked from a C program. The members of the TERSE family will be:
  181.  
  182.     LEAN    A 3K file viewer. This is basically TERSE without the
  183.             editing code. Naturally, LEAN could not compete with the
  184.             excellent LIST utility of Vernon D. Buerg, and many other
  185.             fine tiny file listers.
  186.  
  187.     WEE     A terse version requiring only 70KB free memory. This is
  188.             intended for palmtops, and it will be restricted to 32KB
  189.             files. Another way for reaching the 70KB free memory
  190.             operation level it to disable the cut and paste feature. If
  191.             both restrictions (cut and paste disabling, and 32KB file
  192.             size limit) are placed, then Wee will need only 36KB free
  193.             memory!
  194.  
  195.             Which of these sounds the best?
  196.  
  197.  
  198.     SLIM    An extended TERSE version (at the 5K level) with some extra
  199.             features. Some features for which I have received requests
  200.             are:
  201.  
  202.             o  Read file into buffer.
  203.             o  Move to editing another file.
  204.             o  Goto line.
  205.             o  Word wrap, margin setting and word-wrap on/off.
  206.  
  207.             In addition, I would like to get MEAN work at the following
  208.             levels of free memory for buffers. Add to the numbers below
  209.             the 6.5KB or so which will be required for MEAN's code and
  210.             stack.
  211.  
  212.             32KB   File size limit 32KB, no cut and paste.
  213.  
  214.             64KB   File size limit 64KB, no cut and paste, or File size
  215.                    limit 32KB, cut and paste.
  216.  
  217.             128KB  File size limit 64KB, cut and paste.
  218.  
  219.             Configuration will be selected at run time, dependent on
  220.             available memory and input file size.
  221.  
  222.             In addition, MEAN will have a read-only (view) mode for
  223.             read-only files.
  224.  
  225.  
  226. Files
  227. =====
  228. The distribution of TERSE includes the following files:
  229.  
  230. T.COM           The actual TERSE editor program. No other files are
  231.                 necessary for proper operation of TERSE.
  232.  
  233. TERSE.DOC       This file. The documentation for the program. It may be
  234.                 printed by:
  235.  
  236. PRINTDOC.BAT    A batch file for printing the documentation of TERSE.
  237.                 This file will also print MID-EAST.MBX if you created
  238.                 it.
  239.  
  240. _DESC.BTM       A 4dos batch file for creating file name description for
  241.                 the above files.
  242.  
  243. MID-EAST.R13*  (rotate 13 encrypted file). This file (because of local
  244.         management rules) is not available in Garbo and Simtel.
  245.  
  246. ROT13.COM       A ``rotate 13'' filter.
  247.  
  248. MID-EAST.MBX    Some facts and tips about the Middle East (uncrypted).
  249.                 This file is _not_ part of the distribution, but it can
  250.                 be created by
  251.  
  252. UNROT13.BAT     Batch file to (i) create MID-EAST.MBX from MID-EAST.R13
  253.                 using, the ROT13 filter, and (ii) display MID-EAST.MBXP
  254.                 using T.COM.
  255.  
  256. PRTIP.BAT       Batch file to send MID-EAST.MBX to the printer
  257.  
  258.  
  259.  
  260. License (copying policy)
  261. ========================
  262. The  following  policy  is  intended  to  promote  free  private use and
  263. distribution, and  to collect money  from those who  can. In particular,
  264. these institutions which make money  from private users, are required to
  265. pass on  part of their income  to whoever is responsible  for generating
  266. it.
  267.  
  268. PRIVATE  USERS. You  are free  to  use,  copy and  distribute TERSE  for
  269. noncommercial private use provided that:
  270.  
  271.    a) No fee is charged for use, copying or distribution.
  272.    b) It is not modified in any way.
  273.    c) It is distributed as a package.  All files in this package must be
  274.       included, none should be added, and none of the files are changed.
  275.  
  276. Thus if you are a private user,  you you can *use* TERSE freely, and you
  277. are are under no obligation to register. (The only restriction is on its
  278. further distribution.) If you find  TERSE useful, easy, and nifty editor
  279. you may show your appreciation in one of two ways:
  280.  
  281.    A) Send the author the 15 US dollars registration fee.
  282.  
  283.       All  registered  users  will  receive  the  most recent version of
  284.       TERSE,  configuration utilities,  and if  you wish  a personalized
  285.       version. Please, do register if you  can afford it, and would like
  286.       to  support  financially  the  production  of  this  high  quality
  287.       software.
  288.  
  289.    B) Decrypt, print and read the  enclosed MID-EAST.R13 file, and learn
  290.       some facts about the middle east and of MID-EAST's role in it, its
  291.       problems etc.
  292.  
  293.       IMPORTANT: The  file is given  in ``ROT13 form''.  This means that
  294.       although it contains only pure  printable ASCII characters, it has
  295.       to be decrypted before you can read it. A ROT13 filter is supplied
  296.       with TERSE so that you can decrypt it. The easiest way to decrypt,
  297.       and print then print this file is to:
  298.  
  299.       1) Run the enclosed UNROT13.BAT  batch file. Doing so will produce
  300.       MID-EAST.MBX, a  clean version of  MID-EAST.R13, and then  display
  301.       MID-EAST.MBX with TERSE.
  302.  
  303.       2) To  print MID-EAST.MBX run  the enclosed PRTIP.BAT  batch file.
  304.       Also, if  MID-EAST.MBX exists when you  run the PRINTDOC.BAT batch
  305.       file, it will be printed as well.
  306.  
  307.       This somewhat complicated form of  distribution is partly so there
  308.       that you will feel that you  have applied some conscious effort to
  309.       read it.
  310.  
  311.       MID-EAST.R13 is an integral part of the TERSE distribution, but it
  312.       is not required for the normal  operation of TERSE. It is supplied
  313.       so that you could show your support for the quality to the concept
  314.       of TERSE, and if you cannot afford to register by reading it.
  315.  
  316.       SIDE COMMENT: Being outside of home  for some time, I learned that
  317.       the  many things  about the  Middle-East are  reflected in  a very
  318.       distorted manner from  the media. The file MID-EAST.MBX  is a part
  319.       of a large file which I  am compiling which consists of verifiable
  320.       facts gathered from various resources  about Israel and the middle
  321.       east (political  views are filtered  out).
  322.  
  323.       Naturally, there would always be  people who will think that these
  324.       facts are not "complete" and  that they represent only the Israeli
  325.       side.  If you  are among  those who  might feel  so, my  advise is
  326.       simple: do not read the file.  If not, MID-EAST.MBX is expected to
  327.       give you, the reader, a more informed perspective of events in the
  328.       Middle east and of the author's country.
  329.  
  330.       This  version of  MID-EAST.MBX has  facts about  terrorism in  the
  331.       Middle East. Occasionally, I  change the contents of MID-EAST.R13,
  332.       to keep it  relevant and interesting. I hope  that the  quality of 
  333.       TERSE will encourage you to learn more about the country of its 
  334.       author. Naturally, you are under no obligation to do so.
  335.  
  336.  
  337. NON_PRIVATE USE.  Institutions and companies MUST  register this package
  338. after  an evaluation  period of  21 days.  Registration of  one copy per
  339. company site is sufficient.
  340.  
  341. NON-PRIVATE DISTRIBUTION.
  342.     Shareware  distributor:  You may distribute this package as long as 
  343. no more than a nominal fee (up to $10) per disk is collected per disk.
  344.  
  345. NON-FEE DISTRIBUTION:  Simtel/ Garbo/ other  FTP collections: Obviously,
  346. you may  store this package and  offer it package to  your users free of
  347. any restrictions.
  348.  
  349.  
  350.  
  351. Author's Address
  352. ================
  353. E-mail  internet addresses:
  354.     yogi@cs.huji.ac.il  (Hebrew   University,   Jerusalem, Israel),
  355.     yogi@cs.ubc.ca  (Vancouver,  Canada),
  356.     yogi@umiacs.umd.edu (might work if others fail).
  357.  
  358. Permanent mailing address  is:
  359.     Joseph  Gil,
  360.     P.O. Box 3148,
  361.     Jerusalem,
  362.     Israel.
  363.  
  364. North  America mailing address (until October 1st 1992):
  365.     1418 Park Drive, Vancouver,  B.C. V6P  2K7,  Canada.
  366.  
  367. Hebrew  mailing address  (you  cannot  read  the  following  unless your
  368. screen adapter can display Hebrew character):
  369.                                                                    îëé ëæàë
  370.                                                                   3148 .â.Ü
  371.                                                                     ìëîÖàÿë
  372.  
  373.  
  374. Genealogy
  375. =========
  376. Terse is an exercise of editor  writing inspired by TED, the famous Tiny
  377. EDitor  (written  by  Tom  Kihlken  and  published  November  1988 in PC
  378. Magazine,  Copyright 1988  Ziff  Communications  Co.). Some  features of
  379. TERSE  are  borrowed  from  fine   descendants  of  TED  called  TEDPLUS
  380. (apparently  also written  by Tom   Kihlken in  November 1988)  and TED2
  381. (written by James E. Galbraith, 1201 Chase st., Novato CA, 94945, USA).
  382.  
  383. There is  not a single piece  of code in TERSE  which is the same  as in
  384. TED, TEDPLUS  or TED2. TERSE  represents almost three  years of work  on
  385. space optimization of the code, and  on added functionality. Some of the
  386. newly added features include help  screen, unlimited line length, status
  387. line, smooth  horizontal scrolling, previous  and next word,  UN*X files
  388. editing, search  and replace, safety features  and support for insertion
  389. of all 256 characters of the IBM-PC extended ASCII set (including <Nul>,
  390. <BS>, <CR>, and  <LF>). Some old features include  scrolling, cut, copy,
  391. paste, and printing operations.
  392.  
  393. Some  of  the  documentation  for  TERSE  is  based on the documentation
  394. provided  with TED2.  See the  article "The  tiniest editor  you'll ever
  395. need" by Tom Kihlken, in the November  15, 1988 issue of PC Magazine for
  396. further  details about  TED. Also,  TED, TEDPLUS  and TED2 are available
  397. from SIMTEL20:
  398.  
  399.     TED         PD1:<MSDOS.PCMAG>VOL7N19.ARC
  400.     TEDPLUS     PD1:<MSDOS.EDITOR>TEDPLUS.ARC
  401.     TED2        PD1:<MSDOS.EDITOR>TED2.ZIP
  402.  
  403.  
  404.  
  405.  
  406.  
  407. DESCRIPTION
  408. ===========
  409. Synopsis
  410.                                t [filename]
  411.  
  412. To invoke TERSE  just type "T" from DOS  command line, possibly followed
  413. by a filename.
  414.  
  415.  
  416. File
  417. ----
  418. TERSE will  open and read a  file whose name (and  path, if required) is
  419. initially supplied  on the command line.  If no files name  is provided,
  420. TERSE will  open a new  file. A  name  may be supplied  later during the
  421. editing session  using the ``Output'' command  invoked by <Alt-O>. TERSE
  422. expects a legal DOS filename, which  many include a path name. TERSE can
  423. also  edit files  whose names   contain spaces.  Those names  are legal,
  424. although most DOS commands cannot manipulate them.
  425.  
  426. Upon save, the original of the modified file is saved with the extension
  427. .BAK. TERSE  will prompt before exit  without save. If the  file has the
  428. Read- only  attribute set, TERSE will  open the file to  allow browsing,
  429. but will not  allow any edit changes. There is  no "load" or "save" file
  430. function from within TERSE.
  431.  
  432. Basic Editing
  433. -------------
  434. In TERSE, the  cursor movement keys (Left, Right,  Up, Down, PgUp, PgDn,
  435. ...) allow  you to move  around in the  text. Text is  entered in insert
  436. mode by  default. Text can  be deleted using  the <Del> and  <BackSpace>
  437. keys.
  438.  
  439. Help screen  is available upon pressing  <F1> or <Alt-H>. When  the help
  440. screen is displayed pressing any key will return you to the text.
  441.  
  442. Pressing the <Alt-I> key will toggle between Insert and Overstrike mode.
  443. The  Insert/Overwrite state  is displayed  by an  'Ins' or  'Ovr' in the
  444. statusline.
  445.  
  446. The <Alt-U> key  restores up to 255 characters deleted  by the <Del> key
  447. or overwritten  while in the Overwrite  mode. The <Alt-U> key  will only
  448. restore the last character deleted with the <Backspace> key.
  449.  
  450. TERSE text buffer  is limited to 65535 characters.  An attempt to extend
  451. the buffer beyond that will result in a short beep.
  452.  
  453. Lines
  454. -----
  455. Lines  may be  of any  length. TERSE  recognizes both  the UNIX  and DOS
  456. convention for line  termination, i.e., both <CR><LF> pair  and a single
  457. <CR> denote end  of line. Off screen characters may  be viewed by moving
  458. the cursor toward them. Lines may  be broken by pressing <Enter> (insert
  459. <CR><LF> pair) or <Ctrl Enter> (insert  <CR> character) at any point, in
  460. either Insert or Overstrike mode. Lines  may be joined by pressing <Del>
  461. at the  line end or  <Backspace> at beginning.  Pressing <Alt-D> deletes
  462. the entire  line and closes the  gap. Pressing <Alt-K> deletes  from the
  463. cursor  position to  the end  of the  present line. Pressing <YANK-LINE>
  464. restores the most  recent line deletion. The line  delete buffer remains
  465. intact until  another line is deleted.  The line delete buffer  has room
  466. for 255 characters.
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474. Block
  475. -----
  476. A Block is  some portion of  the text file  which has been  specifically
  477. delineated  for later  manipulation. One  end of  a "block"  of text  is
  478. defined by hitting <Alt-A> key (anchor drop/raise). The other end of the
  479. block is  where the cursor is  located. Move the cursor  with the cursor
  480. control  keys to  the block  end. As  you move  the cursor  not that the
  481. blocked area  is shown in  reverse video. The  <Alt-A> is a  toggle key,
  482. hitting it  again will raise  the anchor dropped  at the block  end, and
  483. thus cancel the blocking operation..
  484.  
  485. Pressing the <Grey->  key (keypad grey minus key) removes  it to a paste
  486. buffer; this operation is known as ``Cut''. The <Grey+> copies the block
  487. to the paste buffer without removing it from the text; this operation is
  488. known as ``Copy''. The ``Paste'' operation copies the text stored at any
  489. point where  the cursor is located;  it is invoked by  hitting the <Ins>
  490. key. he paste buffer remains intact  until another section is marked and
  491. cut or copied. The paste buffer has room for 64K bytes.
  492.  
  493. When  a  block  is  marked,  pressing  <Alt-P>  prints  the  marked text
  494. (directly from the file buffer). After  the print, the block will remain
  495. marked.
  496.  
  497. Search and Replace
  498. ------------------
  499. ......
  500.  
  501. 55 Lines section was omitted in the Garbo and Simtel archives 
  502.  
  503. ......
  504.  
  505.  
  506. Character Set and Binary file editing
  507. --------------------------------------
  508. Any of the  characters in the IBM extended ASCII  set can be entered and
  509. manipulated by TERSE. To enter control characters (ASCII 00-31 and 127),
  510. use <Ctrl-@>,  <Ctrl-A>, ... ,  <Ctrl-Z>, <Ctrl-[>, <Ctrl-\>,  <Ctrl-]>,
  511. <Ctrl-^>, <Ctrl-_> and <Ctrl-Backspace>. A  more general method is press
  512. the Alt key  and without releasing it, typing  a character ASCII decimal
  513. value on the numeric keypad, and then releasing the Alt key. The PC-BIOS
  514. does not  support entry of  the <Nul> character  (00h) in this  fashion.
  515. Instead, you may enter the <Nul> character by hitting with <Ctrl @> key.
  516.  
  517. The  ASCII Backspace  (BS) code  can  be  entered as  <Ctrl-H>, and  the
  518. <Backspace>  key  deletes  the  character  to  the  left  of the cursor.
  519. Similarly, ASCII Carriage-Return (CR) and Line-Feed (LF) character codes
  520. can be entered  directly as <Ctrl-M> and <Ctrl-J>.  TERSE interprets the
  521. <CR> character as an end-of-line. An <LF> is considered an ordinary text
  522. character except  when it is  immediately preceded by  a <CR>, in  which
  523. case it  is considered part of  the end-of-line marker. If  <CR><LF> are
  524. entered together, or ever become adjacent, they cannot be separated. The
  525. <Enter> key inserts an end-of-line marker (CR)(LF).
  526.  
  527. TERSE  does not  use the   CP/M style  End-of-file marker,  <Ctrl-Z>, to
  528. indicate  the last  character in  a text  file. If  a <Ctrl-Z> character
  529. appears in the file, it is shown as is.
  530.  
  531. The Screen
  532. -----------
  533. TERSE configures itself to the display adapter in use, and supports text
  534. modes other than  the standard 80 columns by 25  rows e.g., EGA 43 lines
  535. and CGA 40 columns mode. <PgUp> and <PgDn> scroll the file by the number
  536. of  rows displayed.  TERSE would  not  work  properly if  the screen  is
  537. initially in a graphic mode.
  538.  
  539. TERSE does not alter screen attributes  or colors. Inverse video is used
  540. in the status  line and to indicate a MARKed  block. TERSE uses blinking
  541. inverse  video to  indicate that  the search  string has  been found. It
  542. automatically handles "de-snow" on a CGA display.
  543.  
  544. Because TERSE makes BIOS calls and writes directly to the screen buffer,
  545. it would  probably not work  properly on MS-DOS  computers that are  not
  546. sufficiently IBM-PC compatible.
  547.  
  548. The Status Line
  549. ---------------
  550. At the bottom of the editing screen  is the Status Line. The Status Line
  551. constantly  displays information  regarding the  file you  are currently
  552. editing.  The Status  Line is  shown  below  with a  description of  the
  553. information displayed.
  554.  
  555. ┌──────────────────────────────────────────────────────────────────────────────┐
  556. │F1 Help | Line 137   Col 25    =282  +0    @893   #10324 Ins letter.doc*      │
  557. └───┬──────────┬─────────┬───────┬─────┬─────┬───────┬─────┬─────┬──────┬──────┘
  558.     │          │         │       │     │     │       │     │     │ File modified
  559.     │          │         │       │     │     │       │     │     │ since last
  560.     │          │   The current   │     │     │       │     │     │ written
  561.     │          │   cursor column │     │     │       │     │     │
  562.     │          │   number        │     │     │       │     │ The name of file
  563.     │          │                 │     │     │       │     │ you are editing
  564.     │     The current            │     │     │       │     │
  565.     │     cursor line            │     │     │       │     └Insert mode is ON
  566.     │     number                 │     │     │       │
  567.     │                            │     │     │       └File length in characters
  568.  A reminder that                 │     │     │
  569.  Help screen is                  │     │     └Current offset in file
  570.  available upon                  │     │
  571.  pressing the                    │     └The number of columns scrolled off to
  572.  <F1> key                        │       to the left of the screen
  573.                                  │
  574.                                  └The total number of lines in the file
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593. KEYBOARD SUMMARY
  594. =================
  595. The  following is  a description  of all  TERSE commands  and their  key
  596. binding. To get  a help screen with keyboard usage  summary, hit <F1> or
  597. <Alt H>.
  598.  
  599. Cursor movements
  600. -----------------
  601.  <Left Arrow>            Moves cursor left one column
  602.  <Right Arrow>           Moves cursor right one column
  603.  <Ctrl Left Arrow>       Moves cursor to the beginning of the next word.
  604.  <Ctrl Right Arrow>      Moves cursor to the beginning of previous word.
  605.  <Home>                  Moves cursor to start of line
  606.  <End>                   Moves cursor to end of line
  607.  <Up Arrow>              Moves cursor up one row
  608.  <Down Arrow>            Moves cursor down one row
  609.  <PgUp>                  Moves text window up one page
  610.  <PgDn>                  Moves text window down one page
  611.  <Ctrl PgUp>             Moves cursor to top of file
  612.  <Ctrl PgDn>             Moves cursor to bottom of file
  613.  
  614. Basic editing operations
  615. ------------------------
  616.  Any keyboard char       Insert/Overwrite character into file
  617.  <Tab>                   Insert tab character
  618.  <Enter>                 Start new line, adds <CR><LF> pair to file.
  619.  <Backspace>             Deletes character to left of cursor
  620.  <Del>                   Deletes character under cursor (to right)
  621.  <Alt U>                 Undo recent <Del> operation/Overwritten
  622.                          characters.
  623.  <Alt I>                 Toggle between Insert/Overwrite mode (Ins/Ovr)
  624.  <Alt K>                 Delete to end of line
  625.  <Alt D>                 Delete current line
  626.  <Alt Y>                 Restore deleted line (up to 255 characters)
  627.  
  628. Block Operations
  629. ----------------
  630.  <Alt A>                 drop/raise Anchor. Block  is between anchor and
  631.                          cursor.
  632.  <Keypad-Plus>           Copy block to clipboard buffer
  633.  <Keypad-Minus>          Delete block to clipboard buffer
  634.  <Ins>                   Paste from clipboard buffer
  635.  <Alt P>                 Print block.
  636.  
  637. Search
  638. ------
  639.  <Alt S>                 Search for string
  640.  <Alt N>                 Find next occurrence of string
  641.  <Alt T>                 Search and Translate
  642.  
  643. File Operations
  644. ---------------
  645.  <Alt Q>                 Quit edit: no-save exit (will ask for confirmation)
  646.  <Alt X>                 eXit and save: same as Quit if file name is unknown
  647.  <Alt O>                 Change output file name. Supply name if not given.
  648.  <Alt W>                 Write  the  current  buffer  into  its file (if
  649.                          filename known)
  650.  
  651. Scrolling
  652. ---------
  653.  <Alt ->                 Scroll window horizontally to the left
  654.  <Alt +>                 Scroll window horizontally to the right
  655.  <Ctrl Home>             Scroll window up
  656.  <Ctrl End>              Scroll window down
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663. Entering Special Characters
  664. ---------------------------
  665.  <Ctrl @>                Enter the [NUL] character
  666.  <Ctrl A>                Enter the [SOH] character
  667.  ...                     All ctrl characters can be inserted this way
  668.  ...                     Special control characters are described below
  669.  <Ctrl C>                Enter the [ETX] character (DOS abort is disabled)
  670.  ...                     ...
  671.  <Ctrl H>                Enter the [BS] character
  672.  <Ctrl I>                Enter the [TAB] character
  673.  <Ctrl J>                Enter the [LF] character
  674.  ...                     ...
  675.  <Ctrl M>                Enter the [CR] character
  676.  ...                     ...
  677.  <Ctrl Z>                Enter the [SUB] character (No CP/M style EOF)
  678.  <Ctrl [>                Enter the [ESC] character
  679.  <Esc>                   Enter the [ESC] character
  680.  <Ctrl \>                Enter the [FS] character
  681.  <Ctrl ]>                Enter the [GS] character
  682.  <Ctrl ^>                Enter the [RS] character
  683.  <Ctrl _>                Enter the [US] character
  684.  <Ctrl Backspace>        Enter the [DEL] character
  685.  
  686.  
  687.  
  688.  
  689.  
  690. KNOWN BUGS AND FUTURE DIRECTIONS
  691. =================================
  692.     o     Horizontal scrolling will not move  the cursor position, so by
  693.           pressing <Alt +> and <Alt -> you can scroll to the right or to
  694.           the left but  only to the extent which  will leave the current
  695.           cursor position visible. For example when the cursor is in the
  696.           left most  column, no horizontal scrolling  is possible. There
  697.           are no plans  for modifying this behavior as  the author feels
  698.           that it  is very reasonable. Strong  users pressure may change
  699.           this.
  700.  
  701.     o     <Alt-U>  will  only  restore  the  last  character  erased  by
  702.           <Backspace>.  Future plan  is to  push deleted  characters (by
  703.           <DEL>, <Backspace> and overwritten characters) to a stack. The
  704.           stack will  have limited depth,  and as characters  are pushed
  705.           in, old  characters stored deeply in  the stack disappear. The
  706.           <Alt U>  will pop characters from  the stack and insert/append
  707.           them.
  708.  
  709.     o     Editing can get extremely slow  if lines are excessively long.
  710.           Lines longer  than 20,000 characters  will cause a  noticeable
  711.           delay after every editing operation on this line.
  712.  
  713.     o     There is a small misalignment of the help screen when and ANSI
  714.           console driver is installed.
  715.  
  716.  
  717.